/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Proxy;

import ObjetoDominio.Usuario;
import java.io.StringReader;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 * Clase que transforma los datos recibidos en xml en datos de la clase usuario
 * @author familia
 */
public class ProxyUsuario {
    
    /**
     * Metodo que transforma un xml en usuario
     * @param xml
     * @return 
     */
    public static Usuario ObtenerUsuario(String xml){
    
        try {
            Usuario usuario = new Usuario();
            SAXBuilder builder = new SAXBuilder();
            Document result = builder.build(new StringReader(xml));
            Element raiz = result.getRootElement(); 
            Element eMensaje = raiz.getChild("usuario");
            usuario.setNombre(eMensaje.getChild("nombre").getValue());
            usuario.setPassword(eMensaje.getChild("password").getValue());
            return usuario;

        } catch (Exception e) {
            return null;
        }
    }
    
    public static String TransformarUsuarioXml(Usuario usuario){
        try {

            Document docNuevo = new Document();  
            Element eRaiz = new Element("raiz"); 
            Element eMensaje = new Element("usuario");
            Element eNombre = new Element("nombre");
            Element ePassword = new Element("password");
            eNombre.setText(usuario.getNombre());
            ePassword.setText(usuario.getPassword());
            eMensaje.addContent(eNombre);
            eMensaje.addContent(ePassword);
            eRaiz.addContent(eMensaje);
            docNuevo.addContent(eRaiz);  
            Format format = Format.getPrettyFormat();  
            XMLOutputter xmloutputter = new XMLOutputter(format);  
            String docNuevoStr = xmloutputter.outputString(docNuevo); 
            return docNuevoStr;

            } catch (Exception e) {  
            return "";
        } 
    }
}
